package org.springcloud.wisdom.spring_01_canteen.notice;


import org.springcloud.wisdom.spring_01_canteen.common.bean.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

@Service
public class NoticeService {
    @Autowired
    NoticeDao noticeDao;

    //发布公告
    public boolean InsertNotice(Notice notice){
        if (notice == null){
            return false;
        }
        if (notice.getTitle()==null || notice.getTitle().trim().length() == 0){
            return false;
        }
        if (notice.getContent()==null || notice.getContent().trim().length() == 0){
            return false;
        }
        if (notice.getIdentity()==null || notice.getIdentity().trim().length() == 0){
            return false;
        }

        // 设置默认值
        notice.setIspublic("待审核");
        notice.setIsdel(0); // 默认未删除

        // 设置发布日期为当前日期
        notice.setPublishdt(new Date());

        return noticeDao.InsertNotice(notice) > 0;
    }

    //查看全部公告
    public Page<Notice> getNotice(int pageNum, int pageSize){
        //计算起始位置
        int start=(pageNum-1)*pageSize;
        //获取分页的数据
        List<Notice> list= noticeDao.getNotice(start,pageSize);
        //获取总条目数
        int total= noticeDao.CountNotice();
        //计算总页数
        int pages = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
        //创建分页对象
        Page<Notice> page=new Page<>();
        page.setRecords(list);
        page.setTotal(total);
        page.setPages(pages);
        page.setCurrent(pageNum);
        page.setSize(pageSize);
        return page;
    }

    /////////用户///////////
    //查看迎新模块公告
    public Page<Notice> getNotice1(int pageNum, int pageSize){
        //计算起始位置
        int start=(pageNum-1)*pageSize;
        //获取分页的数据
        List<Notice> list= noticeDao.getNotice1(start,pageSize);
        //获取总条目数
        int total= noticeDao.CountNotice1();
        //计算总页数
        int pages = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
        //创建分页对象
        Page<Notice> page=new Page<>();
        page.setRecords(list);
        page.setTotal(total);
        page.setPages(pages);
        page.setCurrent(pageNum);
        page.setSize(pageSize);
        return page;
    }

    //查看食堂模块公告
    public Page<Notice> getNotice2(int pageNum, int pageSize){
        //计算起始位置
        int start=(pageNum-1)*pageSize;
        //获取分页的数据
        List<Notice> list= noticeDao.getNotice2(start,pageSize);
        //获取总条目数
        int total= noticeDao.CountNotice2();
        //计算总页数
        int pages = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
        //创建分页对象
        Page<Notice> page=new Page<>();
        page.setRecords(list);
        page.setTotal(total);
        page.setPages(pages);
        page.setCurrent(pageNum);
        page.setSize(pageSize);
        return page;
    }

    //查看社团模块公告
    public Page<Notice> getNotice3(int pageNum, int pageSize){
        //计算起始位置
        int start=(pageNum-1)*pageSize;
        //获取分页的数据
        List<Notice> list= noticeDao.getNotice3(start,pageSize);
        //获取总条目数
        int total= noticeDao.CountNotice3();
        //计算总页数
        int pages = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
        //创建分页对象
        Page<Notice> page=new Page<>();
        page.setRecords(list);
        page.setTotal(total);
        page.setPages(pages);
        page.setCurrent(pageNum);
        page.setSize(pageSize);
        return page;
    }

    ///////后台////////////
    //查看迎新模块公告
    public Page<Notice> getNotice11(int pageNum, int pageSize){
        //计算起始位置
        int start=(pageNum-1)*pageSize;
        //获取分页的数据
        List<Notice> list= noticeDao.getNotice11(start,pageSize);
        //获取总条目数
        int total= noticeDao.CountNotice11();
        //计算总页数
        int pages = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
        //创建分页对象
        Page<Notice> page=new Page<>();
        page.setRecords(list);
        page.setTotal(total);
        page.setPages(pages);
        page.setCurrent(pageNum);
        page.setSize(pageSize);
        return page;
    }

    //查看食堂模块公告
    public Page<Notice> getNotice22(int pageNum, int pageSize){
        //计算起始位置
        int start=(pageNum-1)*pageSize;
        //获取分页的数据
        List<Notice> list= noticeDao.getNotice22(start,pageSize);
        //获取总条目数
        int total= noticeDao.CountNotice22();
        //计算总页数
        int pages = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
        //创建分页对象
        Page<Notice> page=new Page<>();
        page.setRecords(list);
        page.setTotal(total);
        page.setPages(pages);
        page.setCurrent(pageNum);
        page.setSize(pageSize);
        return page;
    }

    //查看社团模块公告
    public Page<Notice> getNotice33(int pageNum, int pageSize){
        //计算起始位置
        int start=(pageNum-1)*pageSize;
        //获取分页的数据
        List<Notice> list= noticeDao.getNotice33(start,pageSize);
        //获取总条目数
        int total= noticeDao.CountNotice33();
        //计算总页数
        int pages = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
        //创建分页对象
        Page<Notice> page=new Page<>();
        page.setRecords(list);
        page.setTotal(total);
        page.setPages(pages);
        page.setCurrent(pageNum);
        page.setSize(pageSize);
        return page;
    }

}